
package com.reminis.exceldemo.mapper;

import com.reminis.exceldemo.entity.fromqf;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Insert;
import java.util.List;
import com.reminis.exceldemo.entity.fromqf_download;

@Mapper
public interface FromqfMapper {

    /**
     * 分页查询fromqf数据
     * 根据指定的页码和每页数量获取fromqf数据列表
     * @param page 起始索引（从0开始计算）
     * @param limit 每页显示的记录数
     * @return fromqf对象列表
     */
    @Select("SELECT * FROM fromqf limit #{param1},#{param2}")
    List<fromqf> getLimitAll(int page, int limit);

    /**
     * 查询所有fromqf数据
     * 获取fromqf表中的所有记录，不进行分页
     * @return 所有fromqf对象的列表
     */
    @Select("SELECT * FROM fromqf")
    List<fromqf> getAll();

    /**
     * 查询用于Excel下载的fromqf数据
     * 获取fromqf表中的所有记录，返回格式为fromqf_download对象
     * @return 用于下载的fromqf_download对象列表
     */
    @Select("SELECT * FROM fromqf")
    List<fromqf_download> douloadExcel();

    /**
     * 获取fromqf表中的数据总数
     * 用于分页查询时计算总页数
     * @return fromqf表中的记录总数
     */
    @Select("select count(*) from fromqf")
    int getCount();
    /**
     * 上传Excel插入数据库
     * 修复：将keyProperty从"id"改为"唯一号码"，因为实体类中的主键字段是"唯一号码"而不是"id"
     * @param fromqf 要保存的fromqf对象
     * @return 影响的行数
     */
    @Insert("INSERT INTO fromqf (唯一号码,订单号,日期,材料编号,编码,图片,数量,单位,单价,金额,成份,备注) VALUES (#{唯一号码},#{订单号},#{日期},#{材料编号},#{编码},#{图片},#{数量},#{单位},#{单价},#{金额},#{成份},#{备注})")
    @Options(useGeneratedKeys = true, keyProperty = "唯一号码")
    Integer save(fromqf fromqf);

    /**
     * 清空fromqf表中的所有数据
     * 使用TRUNCATE命令快速清空表，重置自增ID
     * 注意：此操作不可回滚，请谨慎使用
     */
    @Insert("truncate table fromqf")
    void truncate();




}